package com.situ.day3;

import org.junit.Test;

import java.util.Random;

public class WhileForDemo {
//    while、for
//    循环的三要素：
//    1、循环条件的初始化
//    2、循环条件的控制
//    3、循环条件的改变
    @Test
    public void test1() {
        int i = 1;
        while (i <= 5) {
            System.out.println("HelloWorld");
            i++;
        }
    }

    @Test
    public void test2() {
        for (int i = 1; i <= 5; i++) {
            System.out.println("HelloWorld");
        }
    }

    //1、累加思想（1+2+3+... + 100）
    @Test
    public void test3() {
        int sum = 0;
        for (int i = 1; i <= 100; i++) {
            System.out.println(i);
            sum += i;
            System.out.println("sum: " + sum);
        }
        System.out.println("sum: " + sum);
    }

    //2、统计思想，数一下符合条件的有多少个（计算1-100以内7的倍数的个数）
    @Test
    public void test4() {
        int count = 0;
        for (int i = 1; i <= 100; i++) {
            if (i % 7 == 0) {
                System.out.println(i);
                count++;
            }
        }
        System.out.println("count: " + count);
    }

    //continue：跳出本次循环，继续下一次循环
    //break：跳出离他最近的那层循环
    @Test
    public void test44() {
        for (int i = 1; i <= 5; i++) {
            if (i == 3) {
                continue;
            }
            System.out.println(i);
        }
    }

    @Test
    public void test45() {
        for (int i = 1; i <= 5; i++) {
            if (i == 3) {
                break;
            }
            System.out.println(i);
        }
    }

    @Test
    public void test46() {
        //i,j,k
        for (int i = 1; i <= 5; i++) {
            System.out.println("i: " + i);
            for (int j = 1; j <= 5; j++) {
                if (j == 3) {
                    break;
                }
                System.out.println("j: " + j);
            }
        }
    }

    //随机生成一个整数1-1000
    @Test
    public void test34() {
        Random random = new Random();
        // [0, 1000) + 1
        // [1, 1000]
        int num = random.nextInt(1000) + 1;
    }

//    双重for循环：
//    1、
//    ****
//    ****
//    ****
    @Test
    public void test55() {
        //****
        for (int i = 1; i <= 4; i++) {
            System.out.print("*");
        }
        System.out.println();
        //*
        //*
        //*
        //*
        for (int i = 1; i <= 4; i++) {
            System.out.println("*");
        }
    }

    @Test
    public void test6() {
        // i=1代表打印第一行
        for (int i = 1; i <= 3; i++) {
            //i=1时候里面的循环打印第一行的四个星号
            for (int j = 1; j <= 4; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

//    *
//    **
//    ***
//    ****
//    *****
    @Test
    public void test545() {
        // i=1 j=1
        // i=2 j=2
        // i=3 j=3
        for (int i = 1; i <= 5; i++) {
            for (int j = 1; j <= i; j++) {
                System.out.print("*");
            }
            System.out.println();
        }
    }

    @Test
    public void test75() {
        for (int i = 1; i <= 9; i++) {
            for (int j = 1; j <= i; j++) {
                //System.out.println("2*7=14");
                System.out.print(j + "*" + i + "=" + (i * j) + "\t");
            }
            System.out.println();
        }
    }

}
